package com.Offer;

import java.util.Arrays;

/*
    面试题61：扑克牌中的顺子
    从扑克牌中随机抽5张牌，判断是不是一个顺子，即5张牌是不是连续的
    A是1,2-10是数字本身，J是11，Q是12，K是13，大小为任意数字
 */
public class demo61 {
    public static void main(String[] args) {
        int[] input = {0,3,7,4,5};
        System.out.println(isContinuous(input));
    }


    //把大小王为当做0，先将数组排序，然后统计0的个数，再统计空缺数字的个数，最后判断0的个数是否大于或等于空缺个数
    //如果有两个数一样，则不是顺子，返回false
    public static boolean isContinuous(int[] number){
        if (number == null || number.length < 1)
            return false;

        //排序
        Arrays.sort(number);

        int numberOfZero = 0;
        int numberOfGap = 0;
        //统计0的个数
        for(int i = 0;i< number.length && number[i] == 0;i++){
            numberOfZero++;
        }

        int small = numberOfZero;
        int big = small+1;
        while (big < number.length){
            if(number[small] == number[big])
                return false;
            numberOfGap += number[big]-number[small]-1;
            small = big;
            big++;
        }
        if(numberOfGap > numberOfZero)
            return false;
        return true;
    }
}
